/**
 * 文件名：****.java
 * 版权：Copyright Lightkit All Rights Reserved.
 * 描述：*****
 */
package com.lightkits.wms.domain.allot;

import com.lightkits.common.db.entity.WmRequestLine;
import com.lightkits.common.db.entity.event.BdEvent;
import com.lightkits.framework.common.model.CheckResult;
import com.lightkits.wms.dto.allot.model.PickHeadDto;
import com.lightkits.wms.dto.allot.model.PickLineDto;
import com.lightkits.wms.dto.stocktransfer.model.OrgSubStockViewDto;
import com.lightkits.wms.dto.stocktransfer.model.SubStockViewDTO;
import com.lightkits.wms.dto.tagservice.model.TagViewDto;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * CreateOnhAndTagService
 *
 * @author jing.wei@hand-china.com
 * Created on 2019/5/23 20:20
 */
@Component
public interface CreateOnhAndTagService {
    /**
     * 创建子库存转移参数
     *
     * @param headDTO  调拨发出请求头信息
     * @param lineDTOS 调拨发出请求行信息
     * @return
     **/
    CheckResult<List<SubStockViewDTO>> createSubStockParam(PickHeadDto headDTO,
                                                           List<PickLineDto> lineDTOS);

    /**
     * 创建条码信息
     *
     * @param lines 领料单行
     * @param type  调拨类型（"SEND"或者是"RECEIVED"）
     * @param orgId 组织ID(转移的)
     * @return
     */
    CheckResult<List<TagViewDto>> createTags(List<WmRequestLine> lines,
                                             BdEvent event,
                                             String type,
                                             String orgId);

    /**
     * 创建组织间的库存转移参数
     *
     * @param headDTO  调拨接收头信息
     * @param lineDTOS 调拨接收行信息
     * @return
     */
    CheckResult<List<OrgSubStockViewDto>> createOrgSubStockParam(PickHeadDto headDTO,
                                                                 List<PickLineDto> lineDTOS);
}
